import { Switch } from 'antd';
import { AxFormItemBase } from '../lib/AxFormItemBase';
import { AxLabel } from '@/components/AxBase';

/**
 * 自定义Switch开关
 * @param label 标签
 * @param field 字段名称
 * @param value 值（默认值为false）
 * @param hidden 是否隐藏
 */
export function AxSwitch(props) {
  let { value, children } = props;
  const { isLabel = false, children: childrenFromProps, ...rest } = props;

  /** 展示为Label */
  const WrappedComponent = isLabel === true ? AxLabel : Switch;
  /** 当为Label时，将value赋值为text */
  if (isLabel === true) {
    children = value === true ? '是' : '否';
  }

  /** 默认false */
  if (value === undefined) {
    value = false;
  }

  return (
    <AxFormItemBase
      children={children}
      valuePropName={{ valuePropName: 'checked' }}
      WrappedComponent={WrappedComponent}
      {...rest}
      value={value}
    />
  );
}
